#pragma once

#include <memory>
#include "Math/Matrix4x4.h"
#include "Containers/Vector.h"

class CPreRenderMesh;
class CPreRenderPixelObjectMap;

class CPreRenderPixelObjectMesh
{
public:
    std::shared_ptr<CPreRenderMesh> Mesh;

    TVector<SMatrix4x4> ModelMatrices;
    TVector<uint16_t> ObjectIDs;
};

//渲染像素对象实例组
class CPreRenderPixelObjectGroup
{
public:
    TVector<std::shared_ptr<CPreRenderPixelObjectMesh>> Meshs;

    TVector<std::shared_ptr<CPreRenderPixelObjectMesh>> ForegroundMeshs;

    std::shared_ptr<CPreRenderPixelObjectMap> PixelObjectMap;
    uint32_t MapWidth;
    uint32_t MapHeight;
};